package leetCode;

import java.util.HashMap;
import java.util.Map;

/**
 * 给定一个字符串 s ，请你找出其中不含有重复字符的 最长子串 的长度。
 * <p>
 * 滑动窗口
 *
 * @author 司松坡
 * @createTime 2023年04月08日
 */
public class LeetCode3 {
    public int lengthOfLongestSubstring(String s) {
        int length = s.length();
        if (length == 0) {
            return 0;
        }
        Map<Character, Integer> map = new HashMap<>();
        int left = -1;
        int res = 0;
        for (int i = 0; i < length; i++) {
            if (map.containsKey(s.charAt(i))){
                left = Math.max(left,map.get(s.charAt(i)));
            }
            map.put(s.charAt(i),i);
            res = Math.max(res,i-left);
        }
        return res;

    }
}
